/*
编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀，返回空字符串 ""。

示例 1:

输入: ["flower","flow","flight"]
输出: "fl"
示例 2:

输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
说明:

所有输入只包含小写字母 a-z 。

来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/longest-common-prefix
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
*/
class Solution {
public:
    string longestCommonPrefix(vector<string>& strs) {
        string res("");
        if(strs.empty()){
            return res;
        }
        int cur=0;
        char tmp=' ';
        int min_len=INT_MAX;
        for(auto& i:strs){
            if(i.size()<min_len){
                min_len=i.size();
            }
        }
        bool is_exit=false;
        while(cur<min_len){
            for(int i=0;i<strs.size();i++){
                if(tmp==' '){
                    tmp=strs[0][cur];
                }else{
                    if(tmp!=strs[i][cur]){
                        is_exit=true;
                    }
                }
            }
            if(is_exit){
                break;
            }
            cur++;
            res.push_back(tmp);
            tmp=' ';

        }
        return res;
    }
};

// 2020.8.12 town
class Solution {
public:
    string longestCommonPrefix(vector<string>& strs) {
        string res= "";
        if(strs.empty()){
            return res;
        }
        vector<char> myvec;
        char tmp;
        int idx=0;
        bool flag=true;
        while(true){
            tmp=strs[0][idx];
            for(int i=0;i<strs.size();i++){
                if(strs[i].size()==idx){
                    flag=false;
                    break;
                }
                if(strs[i][idx]!=tmp){
                    flag=false;
                    break;
                }  
            }

            if(!flag){
                break;
            }
            myvec.push_back(tmp);
            idx++;
        }
        for(auto& i:myvec){
            res=res+i;
        }
        return res;
    }
};